import Vue from 'vue'
// 使用Vue.directive()定义一个全局指令
// 1.参数一：指令的名称，定义时指令前面不需要写v-
// 2.参数二：是一个对象，该对象中有相关的操作函数
// 3.在调用的时候必须写v-
const drag = Vue.directive('drag', {
  // 1.指令绑定到元素上回立刻执行bind函数，只执行一次
  // 2.每个函数中第一个参数永远是el，表示绑定指令的元素，el参数是原生js对象
  // 3.通过el.focus()是无法获取焦点的，因为只有插入DOM后才生效
  // bind: function(el) { },
  // inserted表示一个元素，插入到DOM中会执行inserted函数，只触发一次
  inserted: function(el) {
    var disx, disy
    
    el.onmousedown = function(e) {
   
      e.preventDefault()

      disx = e.pageX - el.offsetLeft
      disy = e.pageY - el.offsetTop
    

      document.onmousemove = function(e) {
        el.style.left = e.pageX - disx + 'px'
        el.style.top = e.pageY - disy + 'px'
        
        // console.log(x1);
        // console.log(y1);
        if (e.pageX - disx < 0) {
          el.style.left = 0
        }
        if (e.pageY - disy < 0) {
          el.style.top = 0
        }
        if (e.pageX - disx > 840) {
          el.style.left = '840px'
        }
        
        if ( e.pageY - disy > 252) {
          el.style.top = '252px'
          // el.style.bottom = el.offsetTop
        }
        document.onmouseup = el.onmouseup = function() {
          document.onmousemove = null
        }
      }
    }
  },
  // 当VNode更新的时候会执行updated，可以触发多次
  // updated: function(el) { }


  // inserted(el) {
  //   // el是需要拖动盒子的标签
  //   let father = el.parentNode;
  //   // 获取当前页面宽度减去盒子宽高度
  //   let mx_ = father.offsetWidth - el.offsetWidth;
  //   let my_ = father.offsetHeight - el.offsetHeight;
  //   el.onmousedown = function (e) {
  //     // 鼠标点击里面盒子获取x，y坐标
  //     let x = e.offsetX;
  //     let y = e.offsetY;
  //     father.onmousemove = function (e) {
  //       // 点击盒子里面触发鼠标移动事件获取x,y坐标
  //       let mx = e.clientX - x;
  //       let my = e.clientY - y;
  //       // 禁止移动盒子超出页面
  //       mx = mx > mx_ ? mx_ : mx;
  //       my = my > my_ ? my_ : my;
  //       mx = mx < 0 ? 0 : mx;
  //       my = my < 0 ? 0 : my
  //       // 赋值
  //       el.style.left = mx + 'px';
  //       el.style.top = my + 'px';
  //     }
  //   }
  //   // 鼠标松开
  //   el.onmouseup = function() {
  //     father.onmousemove = null;
  //   }
  // },

})
export default drag